package cn.edu.sgu.www.mhxysy.redis.repository;

import java.util.function.Consumer;

/**
 * redis仓库的顶级接口：为了满足开闭原则设计了此接口
 * @author 沐雨橙风ιε
 * @version 1.0
 */
public interface RedisRepository {

    default void put(String key, Object value) { }

    default Object selectById(String key) {
        return null;
    }

    default void putList(Object value) { }

    default Object selectList() {
        return null;
    }

    /**
     * 删除数据缓存
     */
    default void deleteList() { }

    /**
     * 删除指定ID的数据缓存
     * @param primaryKey 数据的ID
     */
    default void deleteById(String primaryKey) { }

    /**
     * 延时双删
     * @param primaryKey 数据的ID
     * @param consumer 封装了具体的业务代码的Consumer<String>对象
     */
    default void delayDoubleDelete(String primaryKey, Consumer<String> consumer) { }

}